tenbb2006fandomcom_de-20200213-history
Datenbanken
Grundlagen Elemente im ER-Diagramm Entity (Objekt, Gegenstand, Entität) Bild:Entity.png ein real oder begrifflich existierender Gegenstand mit fester, bekannter Menge von Eigenschaften (Attributen), der eigenständig mit Hilfe einer Teilmenge seiner Eigenschaften eindeutig identifiziert werden kann (Schlüssel, key); z.B.: * der Angestellte "Müller", der über eine eindeutige Personalnummer, einen Familien- sowie Vornamen, ein Einstellungsdatum und ein bestimmtes Gehalt verfügt Bild:Angestellter.png * die Abteilung "Einkauf", die über eine eindeutige Abteilungsnummer, eine Abteilungsbezeichnung sowie eine Standortangabe verfügt Bild:Abteilung.png ---- weak Entity (schwache Entität) Bild:Weak_entity.png ID-Dependency (Identifikationsabhängigkeit) ein weak Entity kann nur in Beziehung zu einem anderen Entity (parent entity) identifiziert werden z.B.: * Kinder, für die ein Angestellter Familienbeihilfe bezieht, können nur über die Personalnummer des betreffenden Angestellten identifiziert werden E-Dependency (Existenzabhängigkeit) ein weak Entity existiert in der Datenbank nur, wenn ein anderes Entity auch existiert z.B.: * verlässt ein Angestellter das Unternehmen, so sind auch die Daten seiner Kinder für dieses Unternehmen uninteressant geworden ---- Entity Type (Entityklasse, Objektklasse, Objekttyp eine Klasse (Menge) von gleichartig zusammengesetzten, eindeutig identifizierbaren Entities, z.B.: * "Angestellter Müller" und "Angestellter Bürger" sind in der Klasse "Angestellter" zusammengefasst Elemente einer Entityklasse werden als Exemplare bzw. Instanzen bezeichnet, z.B.: * "Müller" und "Bürger" sind Instanzen der Klasse "Angestellter" ---- Relationship (Assoziation, Beziehung) Bild:Relationship.png Beziehung zwischen Objekten, z.B.: * der "Angestellte Müller" ist in der "Abteilung Verkauf" beschäftigt ---- Relationship Type (Assoziationstyp, Beziehungstyp) abstrakte Beziehung zwischen Objekttypen, z.B.: * ein Angestellter ist in einer Abteilung beschäftigt ---- Rolle (role) Funktion, die ein Objekt in einer Beziehung erfüllt, z.B.: * ein Angestellter ist Leiter einer Abteilung ---- Attribute (Attribut, Merkmal, Charakteristik Bild:Attribut.png Value (Attributsausprägung, Merkmalausprägung, Wert) Domain (Wertebereich, value set) Key (Schlüssel, eindeutige Identifikation) Bild:Key.png Übung 5 3d select count (a.name) from professoren p, assistenten a where a.boss = p.persnr and p.name = 'Curie' 3e select count (a.name) from professoren p, assistenten a where a.boss = p.persnr and p.name in ('Sokrates', 'Russel', 'Augustinus') 3j select avg (p.note) from pruefen p, vorlesungen v where p.vorlnr = v.vorlnr and v.titel = 'Die 3 Kritiken' 3k select count (s.name) from professoren r, pruefen p, studenten s where r.name = 'Sokrates' and s.matrnr = p.matrnr and p.persnr = r.persnr g select v2.* from vorlesungenv2, professoren p2 where p2.persnr=v2.gelesenvon and p2.rang='C3' and v2.sws <=( select min(sws) from vorlesungen v, professoren p where v.gelesen=p.pers and p.rang ='C4' and raum in (232,321) ) h select s.matrnr,s.name,s.semester,count(*) from studenten s, pruefen pr where s.matrnr=pr.matrnr group by s.matrnr, s.name,s.semester having count(*)= ( select max(p.anzahl) from( select count(*) as anzahl from pruefen group by matrnr )p ) i korrellierte subquery select s.* from studenten s, pruefen p where p.matrnr=s.matrnr and not exists ( select note from pruefen p2 where note > 1 and p2.matrnr=s.matrnr ) k select count(distinct matrnr) from pruefen p, professoren pr where p.vorlnr=pr.persnr and pr.name='Sokrates' Übung 4 select name from studenten select persnr, rang from professoren select raum from professoren where rang = 'C3' select * from vorlesungen where sws < 4 select * from studenten where semester = 2 OR semester = 4 OR semester = 6 OR semester = 10 alternative: where semester in (2, 4, 6, 10) select a.* from assistenten a, professoren p where a.boss = p.persnr and p.rang = 'C4' select v.* from professoren p, vorlesungen v where v.gelesenvon = p.persnr and p.name = 'Kant' select s.name, s.matrnr from studenten s, vorlesungen v, hoeren h where s.matrnr=h.matrnr and v.vorlnr=h.vorlnr and v.vorlnr=4630 select s.* from studenten s, vorlesungen v, professoren p, hoeren h where s.matrnr=h.matrnr and v.vorlnr=h.vorlnr and v.gelesenvon=p.persnr and p.name = 'Kant' select s.* from studenten s, vorlesungen v, professoren p, hoeren h where s.matrnr=h.matrnr and v.vorlnr=h.vorlnr and v.gelesenvon=p.persnr and p.name = 'Kant' select distinct v.titel from vorlesungen v, hoeren h, studenten s where s.matrnr = h.matrnr and h.vorlnr = v.vorlnr and s.name in ('Fichte', 'Schopenhauer') select v.* from vorlesungen v, assistenten a, professoren p where a.name = 'Wittgenstein' and a.boss = p.persnr and p.persnr = v.gelesenvon select * from vorlesungen except select v.* from vorlesungen v, hoeren h where v.vorlnr=h.vorlnr